import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'

Vue.config.productionTip = false;

// 注册一个全局自定义指令 `v-my-text`
Vue.directive("myText",{
    bind(el, binding, vnode, oldVnode){//只调用一次，指令第一次绑定到元素时调用。(只要使用当前指令就一定会触发bind方法 只触发一次
        console.log("====>bind====>el",el);
        console.log("====>bind====>binding",binding);
        el.innerText = binding.value
    },
    inserted(el, binding, vnode, oldVnode){//被绑定元素插入父节点时调用
        console.log("====>inserted====>v-my-text")
    },
    update(el, binding, vnode, oldVnode){
        //所在组件的 VNode 更新时调用，但是可能发生在其子 VNode 更新之前。指令的值可能发生了改变，也可能没有。但是你可以通过比较更新前后的值来忽略不必要的模板更新
        console.log("====>update====>v-my-text")
    },
    componentUpdated(el, binding, vnode, oldVnode){
        console.log("====>componentUpdated====>v-my-text")
    },
    unbind(el, binding, vnode, oldVnode){
        console.log("====>unbind====>v-my-text")
    },
})




// 注册一个全局指令
// Vue.directive('指令名称', {指令定义对象})

//注册全局组件
// Vue.component("组件名",{组件配置})

//注册全局过滤器
// Vue.filter("过滤器名称",回调函数)


new Vue({
  router,
  store,
  render: h => h(App)
}).$mount('#app')
